#include <stdio.h>

int main(int argc, char const *argv[])
{
    int num_1 = 5; 
    int num_2 = 6;
    // 面试笔试经常出现
    // 常量指针 的特点是 可以更改指向  但是不能更改所指向变量的值
    const int * p_1 = &num_1;
    int const * p_2 = &num_1;
    // 指针常量 的特点是 是可以更改变量的值 但是不能更改指向
    int * const p_3 = &num_2;
    // 常量指针常量 特点是 不能改变指向 也不能改变 变量的值
    const int * const p_4 = &num_1;

    *p_3 = 10;
    p_1 = &num_2;
    p_2 = &num_2;
    
    // p_3 = &num_2;
    // *p = 50;
    // *p_4 = 10;
    printf("p_1 = %d = %p\n" , *p_1 , p_1);
    printf("p_1 = %d = %p\n" , *p_2 , p_2);
    printf("p_1 = %d = %p\n" , *p_3 , p_3);
    printf("num_1 = %d = %p\n" , num_1 , &num_1);
    printf("num_2 = %d = %p\n" , num_2 , &num_2);


    return 0;
}